﻿using System;
using System.Collections.Generic;
using System.Text;
using AIRO.Devices;
using System.ComponentModel;

namespace AIRO.Devices.Solenoid
{
    
    public class GWINSTEK:BasicIviDriverVisa, ISolenoid 
    {
        private const double maxCurrentLimit = 200;
        private const double maxVoltageLimit = 12;

        private double coilConst;
        //private IAsyncResult asyncHandle = null;
        private SolenoidState currentState;
        //private System.ComponentModel.BackgroundWorker backgroundWorker;
        private bool fieldSettled = false;
        double _accuracy;
        private double currentLimit;
        private double voltageLimit;


        public GWINSTEK(): base()
        {            
            //backgroundWorker = new BackgroundWorker();
            //InitializeBackgoundWorker();
            _description = "IVI Custom Driver for GWINSTEK Programmable Power Supply";
            _supportedInstrumentModels = "PST/PSS/PSH";
            _identifier = "GWINSTEK";
            _vendor = "LNEP ISSP(RAS)";
            _instrumentManufacturer = "GW INSTEK";
        }

        #region ISolenoid Members

        public SolenoidState State
        {
            get { throw new NotImplementedException(); }
        }

        public double MagnetField
        {
            get { throw new NotImplementedException(); }
        }

        public void BeginGotoField(double field)
        {
            throw new NotImplementedException();
        }

        public void Cancel()
        {
            throw new NotImplementedException();
        }

        public event EventHandler<StateChangedEventArgs> StateChangedEvent;

        public event EventHandler<FieldSetEventArgs> FieldSetEvent;

        public event EventHandler<ProgressEventArgs> ProgressEvent;

        #endregion
    }
}
